const Goods = require("../../model/goods");
const moment = require("moment-timezone");
module.exports = async(req, res) => {
    const {
        oldGoodsName,
        newGoodsName,
        level,
        remark,
        price,
        sort,
        count,
        display,
        transaction,
        uid,
        image,
    } = req.body;
    const resData = {
        data: req.body,
        meta: {
            code: 200,
            msg: "修改成功!",
        },
    };
    // 旧的商品名用作查询
    let goods = await Goods.find({ goodsName: oldGoodsName });
    // 获取到了对应商品名的商品数组后，接着判断数据库中商品的uid是否与传过来的商品的uid相等，相等的即是要更改的对应商品，更改即可
    // 判断查找的商品数组长度是否为0,为0则证明没有匹配的商品名,不为0则证明存在匹配的商品名，继续循环判断
    if (goods.length) {
        for (let i = 0; i < goods.length; i++) {
            // 获取到的商品的uid与传过来的uid匹配，执行更新逻辑
            if (uid == goods[i].uid.toString()) {
                // 新的商品名用作更新，替代旧的商品名
                let result = await Goods.findOne({ _id: goods[i]._id }).updateOne({
                    goodsName: newGoodsName,
                    modify: moment().tz("Asia/Shanghai").format("YYYY/MM/DD HH:mm:ss"),
                    level,
                    remark,
                    price,
                    sort,
                    count,
                    display,
                    transaction,
                    image,
                });
                // 匹配到对应的商品名和uid
                if (result.matchedCount == 1) {
                    resData.data = await Goods.findOne({ _id: goods[i]._id });
                    resData.meta.code = 200;
                    resData.meta.msg = "修改成功!";
                }
                break;
            } else {
                // 当找到了对应商品，但数据库中的uid与传过来的(当前登录用户的id)uid不对应时执行
                resData.meta.code = 400;
                resData.meta.msg = "未找到对应的商品!";
            }
        }
    } else {
        // 没有匹配的商品名
        resData.meta.code = 400;
        resData.meta.msg = "未找到对应的商品!";
    }
    res.send(resData);
};